// pages/addleixing/index.js
import {
  getIcon,
  insert,
  del,
  updatetype
} from '../../utils/api/wode'
import {back,required} from '../../utils/util'
import Dialog from '@vant/weapp/dialog/dialog';
import {colors} from '../../utils/constData'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    color: colors[0],
    isAdd:true,
    // 图标
    iconList: [],
    //类型名称
    changeName: '',
    //选中图标
    selectIcon: '',
    // 父级传递 tab数据
    selectTab: "0",
    // 父级传递 类型级别 0 1 
    changeIndex: 0,
    // 编辑父级数据
    parentData: '',
    // 选中第二类型时 第一类型选中的code
    parentSelect: '',
    //父级选择code
    parentCode:'',
    //正在提交
    loading:false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const {
      selectTab,
      changeIndex,
      parentData,
      parentSelect
    } = options
    this.getIcon(selectTab)
    this.setData({
      selectTab,
      changeIndex,
      parentSelect
    })
    if(parentData){
      const {label,iconId,code}=JSON.parse(parentData)
      this.setData({
        changeName:label,
        selectIcon:iconId,
        parentCode:code,
        isAdd:false
      })
    }
  },
  /**获取图标列表 */
  getIcon(type) {
    getIcon({
      type
    }).then(res => {

      this.setData({
        iconList: res
      })
    })
  },
  /**输入昵称 */
  onChangeNickName(e) {
    this.setData({
      changeName: e.detail
    })
  },

  /**选择图标 */
  iconChange(e) {
    const value = e.currentTarget.dataset.icon
    this.setData({
      selectIcon: value
    })
  },
  /**保存 */
  save() {
    if(this.data.loading) return
    let index = this.data.changeIndex
    let changeName = this.data.changeName
    let selectTab = this.data.selectTab
    let selectIcon = this.data.selectIcon
    let parentSelect=this.data.parentSelect
    required([changeName,selectIcon],['请输入类型名称','请选择图标'])
    this.setData({loading:true})
    wx.showLoading({
      title: '保存中...',
    })
    if(this.data.isAdd){
      this.addReq(index,changeName,selectTab,selectIcon,parentSelect)
    }else{
      this.editReq(index,changeName,selectTab,selectIcon,parentSelect)
    }
   
  },
/**新增接口 */
addReq(index,changeName,selectTab,selectIcon,parentSelect){
  insert({
    parentId: index=='1' ? parentSelect : '0',
    typeName: changeName,
    type: selectTab,
    icon: selectIcon,
  }).then((res) => {
    back('保存成功',{index,code:res.typeId})
  }).catch(()=>{
    this.setData({loading:false})
  })
},
/**修改接口 */
editReq(index,changeName,selectTab,selectIcon,parentSelect){
  updatetype({
    parentId: index=='1' ? parentSelect : '0',
    typeName: changeName,
    type: selectTab,
    icon: selectIcon,
    typeId:this.data.parentCode
  }).then((res) => {
    back('保存成功',{index,code:res.typeId})
  }).catch(()=>{
    this.setData({loading:false})
  })
},

  /**删除 */
  del() {
    let parentCode=this.data.parentCode
    let changeName=this.data.changeName
    let index=this.data.changeIndex
    Dialog.confirm({
        title: '警告',
        message: '你确定要删除类型" ' + changeName + ' "吗？',
      })
      .then(() => {
        wx.showLoading({
          title: '删除中...',
        })
        del({
          typeId: parentCode
        }).then(res => {
          back('删除成功',{index,code:''})
        })
      })
      .catch(() => {
        // on cancel
      });
  },
  /**返回 */
  navigateBack() {
    wx.navigateBack()
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})